Fragment Lifecycle এবং Fragment Transactions
Fragment হল Android অ্যাপ্লিকেশনের একটি গুরুত্বপূর্ণ উপাদান, যা একটি Activity এর মধ্যে একাধিক UI বা বায়বীয় ফাংশনালিটি ইনক্লুড করার জন্য ব্যবহৃত হয়। Fragment গুলো Activity এর জীবনচক্রের সাথে যুক্ত থাকে এবং Activity-এর ভেতরে যুক্ত করা বা সরানো যায়। এটি একটি Activity এর ভেতরে পুনঃব্যবহারযোগ্য UI উপাদান বা কম্পোনেন্ট তৈরি করতে সাহায্য করে।
Fragment Lifecycle
Fragment-এর নিজস্ব জীবনচক্র থাকে, যা Activity-এর জীবনচক্রের উপর ভিত্তি করে পরিবর্তিত হয়। নিচে Fragment-এর প্রধান lifecycle মেথড এবং তাদের কাজ নিয়ে আলোচনা করা হলো:
১. onAttach()
- onAttach() মেথডটি তখন কল করা হয় যখন Fragment প্রথমবার Activity এর সাথে সংযুক্ত হয়।
- এটি Activity এর রেফারেন্স নিয়ে কাজ করতে পারে এবং Activity এর সাথে ইন্টারঅ্যাক্ট করতে প্রস্তুতি নেয়।
উদাহরণ:
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
// Fragment is now attached to the Activity
}
২. onCreate()
- onCreate() মেথডটি তখন কল করা হয় যখন Fragment প্রথমবার তৈরি হয়।
- এটি Fragment এর প্রাথমিক সেটআপ বা ইনিশিয়ালাইজেশন করার জন্য ব্যবহৃত হয়। তবে UI সম্পর্কিত কিছু করা হয় না।
উদাহরণ:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Initialize variables or perform setup operations
}
৩. onCreateView()
- onCreateView() মেথডটি তখন কল করা হয় যখন Fragment এর UI তৈরি করার প্রয়োজন হয়।
- এটি একটি View রিটার্ন করে, যা Fragment এর UI হিসেবে কাজ করে। এখানে LayoutInflater এবং ViewGroup ব্যবহার করে লেআউট ইনফ্লেট করা হয়।
উদাহরণ:
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_example, container, false);
}
৪. onActivityCreated()
- onActivityCreated() মেথডটি তখন কল করা হয় যখন Activity এর onCreate() সম্পন্ন হয়।
- এটি Activity এবং Fragment এর মধ্যে ইন্টারঅ্যাকশনের জন্য ব্যবহৃত হয় এবং UI সম্পর্কিত সেটআপের জন্য এটি উপযুক্ত।
উদাহরণ:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// Perform UI setup based on Activity
}
৫. onStart()
- onStart() মেথডটি তখন কল করা হয় যখন Fragment দৃশ্যমান হয়।
- এটি Fragment কে স্ক্রিনে দৃশ্যমান করে এবং এটি UI সম্পর্কিত কাজ করতে পারে।
উদাহরণ:
@Override
public void onStart() {
super.onStart();
// Fragment is now visible
}
৬. onResume()
- onResume() মেথডটি তখন কল করা হয় যখন Fragment ব্যবহারকারীর সাথে ইন্টারঅ্যাক্ট করার জন্য সম্পূর্ণ প্রস্তুত হয়।
- এটি Fragment কে সম্পূর্ণ সক্রিয় এবং ইন্টারঅ্যাকটিভ করে তোলে।
উদাহরণ:
@Override
public void onResume() {
super.onResume();
// Fragment is now interacting with the user
}
৭. onPause()
- onPause() মেথডটি তখন কল করা হয় যখন Fragment ব্যাকগ্রাউন্ডে চলে যায় বা অন্য Fragment বা Activity সামনে আসে।
- এটি সংবেদনশীল কাজ বা রিসোর্স রিলিজ করার জন্য ব্যবহৃত হয়।
উদাহরণ:
@Override
public void onPause() {
super.onPause();
// Fragment is partially visible
}
৮. onStop()
- onStop() মেথডটি তখন কল করা হয় যখন Fragment সম্পূর্ণভাবে দৃশ্যমান নয়।
- এটি ব্যাকগ্রাউন্ডে চলে যায় এবং UI আপডেট বা বড় কাজ স্থগিত করা হয়।
উদাহরণ:
@Override
public void onStop() {
super.onStop();
// Fragment is now completely hidden
}
৯. onDestroyView()
- onDestroyView() মেথডটি তখন কল করা হয় যখন Fragment এর UI ধ্বংস হয়, তবে Fragment এখনও মেমোরিতে থাকে।
- এখানে Fragment এর ভিউ বা UI সম্পর্কিত কাজ বন্ধ করা উচিত।
উদাহরণ:
@Override
public void onDestroyView() {
super.onDestroyView();
// Cleanup UI-related resources
}
১০. onDestroy()
- onDestroy() মেথডটি Fragment সম্পূর্ণরূপে ধ্বংস হওয়ার আগে কল করা হয়। এটি মেমোরি থেকে Fragment সরানোর আগে শেষবারের মতো কল করা হয়।
উদাহরণ:
@Override
public void onDestroy() {
super.onDestroy();
// Cleanup resources before destroying the fragment
}
১১. onDetach()
- onDetach() মেথডটি তখন কল করা হয় যখন Fragment সম্পূর্ণভাবে Activity থেকে বিচ্ছিন্ন হয়।
- এটি Activity এর রেফারেন্স ছেড়ে দেয় এবং Fragment কে বিচ্ছিন্ন করে।
উদাহরণ:
@Override
public void onDetach() {
super.onDetach();
// Fragment is detached from the Activity
}
Fragment Transactions
Fragment Transaction হল একটি প্রক্রিয়া, যা দ্বারা একটি Activity এর মধ্যে Fragment যোগ, সরানো, প্রতিস্থাপন, বা পরিবর্তন করা হয়। Fragment Transaction সাধারণত FragmentManager এবং FragmentTransaction এর মাধ্যমে সম্পন্ন করা হয়।
Fragment Transaction এর ধাপসমূহ:
১. FragmentManager ব্যবহার করে ফ্র্যাগমেন্ট ম্যানেজ করা। ২. FragmentTransaction শুরু করা। ৩. Fragment যোগ করা, প্রতিস্থাপন করা বা সরানো। ৪. Transaction সম্পন্ন করা।
উদাহরণ: Fragment যোগ করা
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
ExampleFragment fragment = new ExampleFragment();
fragmentTransaction.add(R.id.fragment_container, fragment);
fragmentTransaction.commit();
উদাহরণ: Fragment প্রতিস্থাপন করা
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
AnotherFragment anotherFragment = new AnotherFragment();
fragmentTransaction.replace(R.id.fragment_container, anotherFragment);
fragmentTransaction.addToBackStack(null); // Back stack এ যুক্ত করা
fragmentTransaction.commit();
উদাহরণ: Fragment সরানো
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
ExampleFragment fragment = (ExampleFragment) fragmentManager.findFragmentById(R.id.fragment_container);
if (fragment != null) {
fragmentTransaction.remove(fragment);
fragmentTransaction.commit();
}
Fragment Lifecycle এবং Fragment Transaction এর তুলনা
| বৈশিষ্ট্য | Fragment Lifecycle | Fragment Transactions |
|---|---|---|
| ব্যাখ্যা | Fragment কীভাবে তৈরি, ম্যানেজ এবং ধ্বংস হয় তা নির্দেশ করে | Fragment কিভাবে Activity এর মধ্যে যুক্ত, প্রতিস্থাপিত বা সরানো হয় তা নির্দেশ করে |
| উদ্দেশ্য | Fragment এর স্টেট এবং ইন্টারঅ্যাকশন ম্যানেজ করা | Fragment এর পজিশন এবং পরিবর্তন নিয়ন্ত্রণ করা |
| Method Example | onCreate(), onDestroy() | add(), replace(), remove() |
উপসংহার
Fragment এর জীবনচক্র এবং Fragment Transaction Android অ্যাপ্লিকেশন ডেভেলপমেন্টের একটি গুরুত্বপূর্ণ অংশ। Fragment Lifecycle প্রতিটি Fragment কিভাবে কাজ করে এবং Activity এর সাথে সম্পর্কিত থাকে তা নিয়ন্ত্রণ করে। অন্যদিকে, Fragment Transactions Fragment কিভাবে Activity এর মধ্যে পরিচালনা করা হয় তা নিয়ন্ত্রণ করে। Fragment Lifecycle এবং Transaction এর সঠিক ব্যবহার একটি কার্যকরী এবং ব্যবহারবান্ধব অ্যাপ তৈরি করতে সাহায্য করে।
Read more